package com.wxm.common.file.core.service.supplier;

import com.wxm.common.file.core.property.UploadBaseProperty;

import java.io.InputStream;

/**
 * <p>
 *      上传接口
 * </p>
 *
 * @author: wxm
 * @Date: 2022/1/13
 */
public interface SupplierBaseService {
    default String filePath(Integer userId){
        return "";
    }

    /**
     * 初始化上传信息
     * @param uploadBaseProperty 上传的配置信息
     */
    void init(UploadBaseProperty uploadBaseProperty);

    /**
     * 文件上传
     * @param inputStream 流
     * @param fileName 文件名称
     * @throws Exception e
     */
    void uploading(InputStream inputStream,String fileName) throws Exception;

    /**
     * 文件删除
     * @param filePath 文件访问路径
     * @throws Exception e
     */
    void delete(String filePath) throws Exception;

    /**
     * 有些供应商的删除文件操作不需要前缀
     * <li>比如 七牛： http://r5nkhdlkc.hn-bkt.clouddn.com/QQ图片20220120161517.jpg 得去掉 [http://r5nkhdlkc.hn-bkt.clouddn.com/]</li>
     * <li>比如 UFile： http://r5nkhdlkc.hn-bkt.clouddn.com/QQ图片20220120161517.jpg 得去掉 [http://r5nkhdlkc.hn-bkt.clouddn.com/]</li>
     * @param filePath 文件路径
     * @param prefix 需要去掉的前缀
     * @return String
     */
    default String removeFilePathPrefix(String filePath,String prefix){
        String str = new String(filePath);
        str = str.replace(prefix, "");
        str = str.indexOf("/") == 0 ? str.substring(1) : str;
        return str;
    }
}
